home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / vhf / locator / locowl.cpp < prev    next >
C/C++ Source or Header  |  1992-11-29  |  6KB  |  231 lines

  1.  
  2. //REGEN_FILEHEADING
  3. #include <stdio.h>
  4. //REGEN_FILEHEADING
  5.  
  6.  
  7.      /********************************************************************
  8.       *                                                                  *
  9.       *   Source File: LOCOWL.cpp                                        *
  10.       *   Description: C++ Source file for LOCOWL application            *
  11.       *   Date:        Sun Nov 29 18:09:13 1992                          *
  12.       *                                                                  *
  13.       ********************************************************************/
  14.  
  15. #include <owl.h>
  16. #include <edit.h>
  17. #include <listbox.h>
  18. #include <combobox.h>
  19. #include <scrollba.h>
  20. #include <dialog.h>
  21. #include "LOCDLG.H"
  22. #include "LOCOWLID.h"
  23. #include "LOCOWL.h"
  24. #include "LOCOWCls.h"
  25.  
  26.  
  27. //REGEN_VARIABLES
  28. //REGEN_VARIABLES
  29.  
  30. // Define application class derived from  TApplication
  31. class TLOCOWL : public TApplication
  32. {
  33. public:
  34.   TLOCOWL(LPSTR AName, HANDLE hInstance, HANDLE hPrevInstance,
  35.                    LPSTR lpCmdLine, int nCmdShow)
  36.     : TApplication(AName, hInstance, hPrevInstance, lpCmdLine, nCmdShow) {};
  37.     virtual void InitMainWindow();
  38.     //REGEN_APPCLASS
  39.     //REGEN_APPCLASS
  40. };
  41.  
  42. // Declare TMainWindow, a TDialog descendant
  43. class TMainWindow : public TDialog 
  44. {
  45. public:
  46.    TMainWindow(PTWindowsObject AParent, LPSTR ATitle);
  47.    ~TMainWindow();
  48.    PTEdit Editfromloc;
  49.    PTEdit Edittoloc;
  50.    virtual void TMainWindowidcalc(RTMessage Msg) = [ID_FIRST + idcalc];
  51.    virtual void Cancel(RTMessage Msg) = [ID_FIRST + IDCANCEL];
  52.    virtual void ABOUT(RTMessage Msg) = [CM_FIRST + IDM_ABOUT];
  53.    //REGEN_MAINCLASS
  54.    PTStatic Sfromstat;
  55.    PTStatic Stostat;
  56.    PTStatic Sdist;
  57.    PTStatic Sdir;
  58.    //REGEN_MAINCLASS
  59.  
  60. protected:
  61.    virtual void GetWindowClass(WNDCLASS _FAR & AWndClass);
  62.    virtual LPSTR GetClassName();
  63.    virtual void SetupWindow();
  64. };
  65.  
  66.  
  67. /****************************************************
  68.  * TMainWindow implementations: 
  69.  ****************************************************/
  70.  
  71. // Define TMainWindow, a TWindow constructor
  72. TMainWindow::TMainWindow(PTWindowsObject AParent, LPSTR ATitle)
  73.                          : TDialog(AParent, ATitle)
  74. {
  75.    Editfromloc = new TEdit(this, fromloc, 0);
  76.    Edittoloc = new TEdit(this, toloc, 0);
  77.    //REGEN_MAINCONSTRUCT
  78.    Sdist = new TStatic(this, dist, 0);
  79.    Sdir = new TStatic(this, dir, 0);
  80.    Sfromstat = new TStatic(this, fromstat, 0);
  81.    Stostat = new TStatic(this, tostat, 0);
  82.    //REGEN_MAINCONSTRUCT
  83.  
  84. }
  85.  
  86. // Define TMainWindow destructor
  87. TMainWindow::~TMainWindow()
  88. {
  89.    //REGEN_MAINDESTRUCT
  90.    delete Sdist;
  91.    delete Sdir;
  92.    delete Sfromstat;
  93.    delete Stostat;
  94.    //REGEN_MAINDESTRUCT
  95.  
  96.    delete Editfromloc;
  97.    delete Edittoloc;
  98. }
  99.  
  100. void TMainWindow::SetupWindow()
  101. {
  102.    TDialog::SetupWindow();
  103.    SetMenu(HWindow, LoadMenu(GetWindowWord(HWindow, GWW_HINSTANCE), "LOCOWL"));
  104. // not preserved during Protogen generation !
  105. // append to module TMainWindow::SetupWindow() code
  106.    const int MAXLOC = 6+1;
  107.    char def_from[MAXLOC];
  108.    GetProfileString ("locator", "fromdefault", "", def_from, MAXLOC);
  109.    Editfromloc->SetText(def_from);
  110. // end of not preserved....
  111. }
  112.  
  113. LPSTR TMainWindow::GetClassName()
  114. {
  115.    return "MainWindow";
  116. }
  117.  
  118. void TMainWindow::GetWindowClass(WNDCLASS _FAR & AWndClass)
  119. {
  120.    TDialog::GetWindowClass(AWndClass);
  121.    AWndClass.hIcon = LoadIcon(AWndClass.hInstance, "LOCATOR");
  122.    AWndClass.lpszMenuName = (LPSTR)"LOCOWL";
  123.    //REGEN_CLASSINFO
  124.    //REGEN_CLASSINFO
  125.  
  126. }
  127.  
  128. void TMainWindow::TMainWindowidcalc(RTMessage Msg)
  129. {
  130.    switch(Msg.LP.Hi)
  131.    {
  132.       case BN_CLICKED :
  133.       //REGEN_TMainWindowidcalc_ROUTING
  134.       double distance, bearing;
  135.       const int MAXLOC = 6+1;
  136.       char from[MAXLOC], to[MAXLOC], buffer[10];
  137.       int locstat;
  138.  
  139.       Editfromloc->GetText(from, MAXLOC);
  140.       Edittoloc->GetText(to, MAXLOC);
  141.       locstat = locs_to_bearing (from, to, &distance, &bearing);
  142.  
  143.       Stostat->SetText(to);
  144.       Sfromstat->SetText(from);
  145.  
  146.       if (locstat) {                //at least either locator not ok
  147.             Sdir->SetText("");
  148.             Sdist->SetText("");
  149.             if (locstat & 2)
  150.                 Stostat->SetText("Invalid");
  151.             if (locstat & 1)
  152.                 Sfromstat->SetText("Invalid");
  153.       } else {                        //both ok
  154.                 sprintf (buffer, "%5.0lf", distance + 0.5);
  155.                 Sdist->SetText(buffer);
  156.                  sprintf (buffer, "%5.0lf", bearing + 0.5);
  157.                 Sdir->SetText(buffer);
  158.       }
  159.       //REGEN_TMainWindowidcalc_ROUTING
  160.       break;
  161.    }
  162. }
  163.  
  164. void TMainWindow::Cancel(RTMessage Msg)
  165. {
  166.    switch(Msg.LP.Hi)
  167.    {
  168.       case BN_CLICKED :
  169.       //REGEN_TMainWindowIDCANCEL_ROUTING
  170.       //REGEN_TMainWindowIDCANCEL_ROUTING
  171.       TDialog::Cancel(Msg);
  172.    }
  173. }
  174.  
  175. void TMainWindow::ABOUT(RTMessage)
  176. {
  177.    // Execute modal dialog
  178.    if (GetModule()->ExecDialog(
  179.                new TabtdlgDlg(this, "abtdlg")) == IDOK )
  180.    {
  181.    //REGEN_ABOUT_EXEC
  182.    //REGEN_ABOUT_EXEC
  183.  
  184.    }
  185. }
  186.  
  187.  
  188. /***************************************************
  189.  * TLOCOWLApp method implementations:
  190.  ***************************************************/
  191.  
  192. // Construct the TLOCOWL's MainWindow of type TMainWindow
  193. void TLOCOWL::InitMainWindow()
  194. {
  195.    MainWindow = new TMainWindow(NULL, "locdlg");
  196.    //REGEN_MAINCREATE
  197.    //REGEN_MAINCREATE
  198. }
  199.  
  200. // Main program
  201. int PASCAL WinMain(HANDLE hInstance,
  202.                    HANDLE hPrevInstance,
  203.                    LPSTR lpCmdLine,
  204.                    int nCmdShow)
  205. {
  206.    //REGEN_INIT
  207.    //REGEN_INIT
  208.  
  209.    TLOCOWL LOCOWL ("Locator Calculator by OH3NJC", hInstance, hPrevInstance,
  210.       lpCmdLine, nCmdShow);
  211.  
  212.    LOCOWL.Run();
  213.  
  214.    //REGEN_CLEANUP
  215.    //REGEN_CLEANUP
  216.  
  217.    return LOCOWL.Status;
  218. }
  219.  
  220. //REGEN_CUSTOMCODE
  221. /*
  222. // not preserved during Protogen generation !
  223. // append to module TMainWindow::SetupWindow() code
  224.    const int MAXLOC = 6+1;
  225.    char def_from[MAXLOC];
  226.    GetProfileString ("locator", "fromdefault", "", def_from, MAXLOC);
  227.    Editfromloc->SetText(def_from);
  228. // end of not preserved....
  229. */
  230. //REGEN_CUSTOMCODE
  231.